/*
 * ==================================================
 * 项目开发者：JerryStark
 * 开发者Email：4771007@qq.com
 * 开发者QQ:4771007
 * 开发范围：web，wap，android,ios,osx or win or linux 应用
 * ==================================================
 */
package lottery;

import Conter.Config;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.Iterator;
import java.util.Map;

/**
 * 所有彩票结果抓取主类
 *
 * @author jerry
 */
public class StartGet {

    /**
     * 彩票的配置集合
     * <br>启动的时候初始化
     */
    public JsonObject LotteryConfig;

    /**
     * 启动所有彩票抓取的线程
     * <br>仅仅执行一次,每个独立的游戏开一个线程并守护
     */
    public void Start() {

        LotteryConfig = Config.LotteryConfig;
        //空的配置就停止
        if (LotteryConfig.entrySet().isEmpty()) {
            System.out.println("!彩票抓取:!!游戏配置数据为空,终止游戏结果抓取");
            return;
        }
        System.out.println("彩票抓取:主配置加载:" + LotteryConfig);
        AllGameToGetOne();
    }

    /**
     * 循环所有彩票游戏,按配置文件抓取一次
     * <br>
     * 这里只抓取一次的操作
     */
    private void AllGameToGetOne() {

        //循环配置变量数组,建立新线程进行对应的抓取
        Iterator<Map.Entry<String, JsonElement>> lottery_count = LotteryConfig.entrySet().iterator();
        while (lottery_count.hasNext()) {
            Map.Entry<String, JsonElement> next = lottery_count.next();
            String game_key = next.getKey();
            JsonObject game_conf = (JsonObject) next.getValue();
            System.out.println("彩票抓取:获取" + game_key + "游戏配置,准备开启抓取值守线程+++");
            //每个游戏的抓取结果类型都不同,有些是json 有些是 html分析的,
            //使用一个通用的配置数组,来设定要抓取的统一
            //配置要能完成统一的结果输出.
//            GetOneGame.Start(game_conf);

//每个彩票new一个新抓取类,在类中开启游戏的值守线程,传入这个游戏的配置信息进去
            new GetOneLottery(game_conf).Start();

        }
    }
}
